package cn.iocoder.yudao.module.ai.controller.admin.material.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 素材管理新增/修改 Request VO")
@Data
public class MaterialSaveReqVO {

    @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23102")
    private Long id;

    @Schema(description = "素材名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "素材名称不能为空")
    private String name;

    @Schema(description = "素材描述", example = "随便")
    private String description;

    @Schema(description = "素材来源 ： sd 手动上传 ；wl 识别 ；dz 电子封条同步；参考字典类型（material-library-type）", example = "1")
    private String sourceType;

    @Schema(description = "素材类型 1 图片；2 视频；参见字典material-type", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "素材类型 1 图片；2 视频；参见字典material-type不能为空")
    private String fileType;

    @Schema(description = "所属企业")
    private String ownerOrg;

    @Schema(description = "所属企业名称", example = "王五")
    private String ownerOrgName;

    @Schema(description = "场景分类，参见字典 scene-classification", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "场景分类，参见字典 scene-classification不能为空")
    private String senceType;

//    @Schema(description = "文件原始名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
//    @NotEmpty(message = "文件原始名称不能为空")
//    private String fileOriginalName;

//    @Schema(description = "文件存储路径", requiredMode = Schema.RequiredMode.REQUIRED)
//    @NotEmpty(message = "文件存储路径不能为空")
//    private String fileUploadPath;

//    @Schema(description = "时长（针对视频）秒")
//    private Long duration;

//    @Schema(description = "包含文件数量")
//    private Integer containFileNum;

//    @Schema(description = "文件大小")
//    private Long fileSize;

//    @Schema(description = "修复状态", example = "1")
//    private String repairStatus;

//    @Schema(description = "供应商id", example = "19072")
//    private Long suplierId;

    @Schema(description = "文件附件，与 absDiskFilePath 2选1", requiredMode = Schema.RequiredMode.REQUIRED)
    private MultipartFile file;
    /**
     * 绝对磁盘文件路径(与 file 2选1 )
     */
    private String absDiskFilePath;

}